我要处理一些数据 0.999820,都是这种保留了 6 位小数的 str 类型字段 ,怎么转换成 int 啊,一转换就报错 我最终要拿他作减法运算,转成 float 直接变成 1.0 了,不是我想要的结果,我要保证他还是原来的精度 6 位小数,只不过要转换成 int 类型
ValueError: invalid literal for int() with base 10: '0.999820'
|  |      1holajamc      2018-04-13 10:51:13 +08:00 decimal 了解一下   以及『我要保证他还是原来的精度 6 位小数,只不过要转换成 int 类型』小数和 int 类型同时出现,一定要这么秀嘛… | 
|      2winterli      2018-04-13 11:03:53 +08:00 如何用 int 来表示带小数的。。。 不如你换个问题 为啥用 int 来表示带小数的。。。 难道计算那边你不能把别的换成 float 算么。 | 
|  |      3AlisaDestiny      2018-04-13 11:06:41 +08:00  1 0.999820 - X  = (0.999820 - X ) * 1000000 / 1000000 = (999820 - X * 1000000) / 1000000 . | 
|      4lmqdlr      2018-04-13 11:08:48 +08:00  1 忽略你描述中存在的问题,我想你大概是想用 int 计算又要求结果保留 6 位小数,那么可以把字符串转成 float,然后把参与运算的数字先乘以 1000000,运算完再除回来 | 
|  |      5BearD01001      2018-04-13 11:09:04 +08:00  1 楼上正解。乘以 1000000 后进行运算,输出结果钱除以 1000000 | 
|  |      6BearD01001      2018-04-13 11:09:22 +08:00 @BearD01001 #5 钱 > 前 | 
|  |      7noming      2018-04-13 11:12:33 +08:00 放大-->运算-->还原,有些数字电路里计数浮点数就是这么处理的 | 
|  |      8xuc      2018-04-13 11:13:32 +08:00 楼主说的不明不白的 首先'0.999820'转 float 怎么可能直接变成 1.0 了 >>> float('0.999820') 0.99982 另外你要解决的问题我估计 1~3 楼说的方法可以解决 | 
|  |      9hsuan      2018-04-13 11:15:14 +08:00 int,全称是 integer,我觉得楼主缺少一本英汉字典。 | 
|  |      11tailf      2018-04-13 12:44:41 +08:00 楼主去学习一下什么是 int ...... | 
|  |      12Tyanboot PRO @wsds 你都知道全称是 integer 了你不知道这是“整数”的意思吗。整数类型的小数。牛逼。 | 
|  |      13SeanZhaoOrZXY      2018-04-13 12:47:11 +08:00 @wsds 他是想说,你可能没搞懂 int 代表什么,否则不会提出这样的转换要求。。 | 
|  |      14est      2018-04-13 13:15:41 +08:00 严格按照 LZ 的 narrative 来做这个问题「保留了 6 位小数的 str 类型字段」 应该是先在字符串里把小数点向右移动 6 位,再做 int,计算完毕之后再除以 1e6 | 
|      15xpresslink      2018-04-13 13:22:45 +08:00  3 会问这个问题的基本上是非常小白,你们竟然想扯清清楚楚的? | 
|  |      16yogogo      2018-04-13 13:33:59 +08:00 LZ 应该是说转为数值类型的吧~ | 
|  |      17U7Q5tLAex2FI0o0g      2018-04-13 13:38:34 +08:00 又是 int 又是 6 位小数?逗我呢 | 
|      18projectzoo      2018-04-13 13:41:47 +08:00 @xpresslink #15 说得有道理。 | 
|  |      19tomczhen      2018-04-13 13:42:53 +08:00 via Android  1 典型的 xy 问题,别浪费时间了。 | 
|      20Zzde      2018-04-13 13:45:19 +08:00 via iPhone 保持原来精度 6 位小数,还要是 int 型....天秀 | 
|  |      21vipppppp      2018-04-13 15:35:44 +08:00  2 我还以为只有客户会提出这样的要求 | 
|      22cstj0505      2018-04-13 15:43:39 +08:00 我以为我学了假的 int | 
|  |      23ctro15547      2018-04-13 15:48:15 +08:00 float 类型,了解一下? | 
|      24ques      2018-04-13 15:48:52 +08:00  1 指出问题所在就可以了么  为啥 v2 一群人冷嘲热讽的   怎么这种风气? | 
|  |      25qymobile      2018-04-13 15:49:13 +08:00 其实好多帖子都可以回复一个古老的 关于 烧饼的短语 | 
|  |      26mcluyu      2018-04-13 16:03:17 +08:00 这个问题刷新了我对这个论坛的看法,我暂且认为是楼主没有描述清楚或者我理解错误了吧。一开始我还以为要说的是二进制在表示小数时的精度问题,原来并不是。。。。 | 
|      27dingtian      2018-04-13 17:25:42 +08:00 。。。哈哈哈 不看你的题目,只看你的问题。。对你需要操作的两个数 成个十万一百万什么的,最后结果再除回来。。。精度保留了 | 
|  |      29locktionc      2018-04-13 17:43:20 +08:00 这个楼主想要的是 float 型的浮点数,而不是字符串型的浮点数。 | 
|  |      30raincoat      2018-04-13 19:09:04 +08:00 前排的回答都很靠谱了~~ | 
|  |      31UnknownR      2018-04-13 19:14:37 +08:00 | 
|  |      32dog82      2018-04-13 22:04:26 +08:00 感觉我精神分裂了 | 
|  |      33pmispig      2018-04-13 22:34:09 +08:00 你到底知不知道什么是 int???? | 
|  |      34wingkou      2018-04-13 22:39:34 +08:00 via Android 看到这么多人骂楼主我就放心了... | 
|  |      35realpg PRO 看到这么多人骂楼主我就放心了... | 
|      36lovesky      2018-04-14 08:58:08 +08:00 via Android 看到这么多人骂楼主我就放心了... | 
|  |      38bombless      2018-04-14 09:53:50 +08:00 via Android 我估计是领导要求用 int 算,然后 po 主就懵了。就像楼上说的先乘以 1e6 然后 round 进行计算,结果再除回 1e6 就可以了 |