0.999820 这种小数,怎么转换成 int 类型

2018-04-13 10:44:54 +08:00
 wsds

我要处理一些数据 0.999820,都是这种保留了 6 位小数的 str 类型字段 ,怎么转换成 int 啊,一转换就报错 我最终要拿他作减法运算,转成 float 直接变成 1.0 了,不是我想要的结果,我要保证他还是原来的精度 6 位小数,只不过要转换成 int 类型

ValueError: invalid literal for int() with base 10: '0.999820'

5947 次点击
所在节点    Python
38 条回复
holajamc
2018-04-13 10:51:13 +08:00
decimal 了解一下
以及『我要保证他还是原来的精度 6 位小数,只不过要转换成 int 类型』小数和 int 类型同时出现,一定要这么秀嘛…
winterli
2018-04-13 11:03:53 +08:00
如何用 int 来表示带小数的。。。
不如你换个问题
为啥用 int 来表示带小数的。。。
难道计算那边你不能把别的换成 float 算么。
AlisaDestiny
2018-04-13 11:06:41 +08:00
0.999820 - X = (0.999820 - X ) * 1000000 / 1000000 = (999820 - X * 1000000) / 1000000 .
lmqdlr
2018-04-13 11:08:48 +08:00
忽略你描述中存在的问题,我想你大概是想用 int 计算又要求结果保留 6 位小数,那么可以把字符串转成 float,然后把参与运算的数字先乘以 1000000,运算完再除回来
BearD01001
2018-04-13 11:09:04 +08:00
楼上正解。乘以 1000000 后进行运算,输出结果钱除以 1000000
BearD01001
2018-04-13 11:09:22 +08:00
@BearD01001 #5 钱 > 前
noming
2018-04-13 11:12:33 +08:00
放大-->运算-->还原,有些数字电路里计数浮点数就是这么处理的
xuc
2018-04-13 11:13:32 +08:00
楼主说的不明不白的

首先'0.999820'转 float 怎么可能直接变成 1.0 了
>>> float('0.999820')
0.99982

另外你要解决的问题我估计 1~3 楼说的方法可以解决
hsuan
2018-04-13 11:15:14 +08:00
int,全称是 integer,我觉得楼主缺少一本英汉字典。
wsds
2018-04-13 12:42:08 +08:00
@hsuan 我有说全称不是 integer ?
tailf
2018-04-13 12:44:41 +08:00
楼主去学习一下什么是 int ......
Tyanboot
2018-04-13 12:45:45 +08:00
@wsds 你都知道全称是 integer 了你不知道这是“整数”的意思吗。整数类型的小数。牛逼。
SeanZhaoOrZXY
2018-04-13 12:47:11 +08:00
@wsds 他是想说,你可能没搞懂 int 代表什么,否则不会提出这样的转换要求。。
est
2018-04-13 13:15:41 +08:00
严格按照 LZ 的 narrative 来做这个问题「保留了 6 位小数的 str 类型字段」

应该是先在字符串里把小数点向右移动 6 位,再做 int,计算完毕之后再除以 1e6
xpresslink
2018-04-13 13:22:45 +08:00
会问这个问题的基本上是非常小白,你们竟然想扯清清楚楚的?
yogogo
2018-04-13 13:33:59 +08:00
LZ 应该是说转为数值类型的吧~
littleylv
2018-04-13 13:38:34 +08:00
又是 int 又是 6 位小数?逗我呢
projectzoo
2018-04-13 13:41:47 +08:00
@xpresslink #15 说得有道理。
tomczhen
2018-04-13 13:42:53 +08:00
典型的 xy 问题,别浪费时间了。
Zzde
2018-04-13 13:45:19 +08:00
保持原来精度 6 位小数,还要是 int 型....天秀

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/446462

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX