golang 里面的除数计算很 bug
比如 A 为 5 , B 为 10
B/A = 2 这个很正常
但是 但是 但是
A/B = 0
正常来说 A/B 结果应该是 0.5
但是这种情况 golang 因为两个数都是 int 的原因,直接把小数去了,留下了意外的 0
嗯,抛砖引玉,请问各位有什么好的处理办法没?
比如在 golang 中,我非要用 5/10 得到结果 0.5
1
gamexg 2019-03-28 15:59:06 +08:00 via Android
大部分语言下整数运算返回的都是整数,不包含小数部分。
看你的需求,转为浮点数除最简单,但是浮点数存在误差问题。 另外的选择是使用 decimal 类型,这个需要第三方库。 |
2
jojopro OP @gamexg 弱类型语言是支持这个的 比如 nodejs
如果我想用 golang 实现这样的效果 请问是否有具体方法呢 我刷搜索没找到 自己用代码尝试了下感觉挺恶心的 |
3
jojopro OP 难道是提前把 5 和 10 定义成 float 类型 我试试
|
4
gamexg 2019-03-28 16:24:16 +08:00
|
6
reus 2019-03-28 23:49:10 +08:00
所有整数运算都是这样的,建议补习基础知识
|