你认为你自己可以不借助库函数,写一个浮点数转字符串的函数吗?

2017-09-30 18:02:03 +08:00
 ChristopherWu

故意问的问题 xD 不借助库函数的意思是不借助 sprintf 这类型直接做了此事的,其他的如 round 这些函数都可以。

4213 次点击
所在节点    程序员
24 条回复
ipoh
2017-09-30 18:15:41 +08:00
查一下浮点数的存储格式就行了吧
Miy4mori
2017-09-30 18:45:03 +08:00
抖个机灵 float + ""
Cooky
2017-09-30 18:52:15 +08:00
小数点分两部分转字符串
nodekey
2017-09-30 19:10:25 +08:00
四则运算+取模不是很简单的么…………
zthxxx
2017-09-30 19:12:50 +08:00
float => float + []

js 无所畏惧
tscat
2017-09-30 19:17:15 +08:00
取模。。
t1518968889
2017-09-30 19:22:09 +08:00
唧唧复唧唧,天天造飞机。
ChristopherWu
2017-09-30 19:23:07 +08:00
分两部分,小数点后的取整数的方法是不行的:P
but0n
2017-09-30 19:50:58 +08:00
121121121
2017-09-30 20:34:04 +08:00
可以写,但是平时写程序也是参考很多前人的代码的,写库没有理由不参考,尽量少走弯路是王道
zmj1316
2017-09-30 21:22:19 +08:00
写过 verilog 的表示连浮点计算都是用逻辑门写的。。。
ChristopherWu
2017-09-30 22:00:14 +08:00
@121121121 从此坚定了程序员绝不学底层开发,哈哈哈
noli
2017-09-30 22:00:29 +08:00
浮点数存储和运算有标准的,要么跟标准做,要么自己发明一个标准。
跟标准做,写出来有什么难的?
不跟标准做,写出来又有什么意义。

不明白题主问这个问题是什么出发点。
RLib
2017-09-30 22:08:08 +08:00
@noli 出发点估计是在笔试规定时间内写出来
ChristopherWu
2017-09-30 23:06:56 +08:00
@noli 可能是我学识浅陋, 你可以说说跟着标准做应该怎么做?我觉得挺难的。
yangff
2017-09-30 23:13:53 +08:00
v8 用的 Grisu 算法
glibc 大概是 Dragon4
yangff
2017-09-30 23:17:29 +08:00
虽然浮点转字符不是很难的事情……
但是也没有一些人想的这么简单啦……(
kunjinkao
2017-09-30 23:19:58 +08:00
算出每一位,然后 int 转 char
pezy
2017-09-30 23:57:08 +08:00
写出来不算太难,但写快就比较难了,可以参考 https://github.com/miloyip/dtoa-benchmark#results 的结果,看看 https://github.com/miloyip/dtoa-benchmark/blob/master/src/milo/dtoa_milo.h 是怎么写的。
CEBBCAT
2017-10-01 01:16:33 +08:00
这是开启了假期模式了吗?呜啦啦啦啦

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

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

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

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

© 2021 V2EX