| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 713 人关注过本帖
标题:js语言缺陷,给出一个问题
只看楼主 加入收藏
yangjiawxl
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-10-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
js语言缺陷,给出一个问题
4字节数 3F 8C CC CD  在int型中表示 1,066,192,077   在float中表示 1.1 在js语言中只能按int型显示,无法按浮点显示。请教大牛,有解决办法吗?
 
搜索更多相关主题的帖子: 办法 
2012-10-05 21:05
jeanine123
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:65
专家分:192
注 册:2011-9-17
收藏
得分:0 
围观,学习一下。
2012-10-06 07:58
yangjiawxl
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-10-5
收藏
得分:0 
自己顶起来

2012-10-06 20:13
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用yangjiawxl在2012-10-5 21:05:12的发言:

4字节数 3F 8C CC CD  在int型中表示 1,066,192,077   在float中表示 1.1 在js语言中只能按int型显示,无法按浮点显示。请教大牛,有解决办法吗?
 

js是无类型的语言 而且是脚本语言 所以学这种语言就不要考虑它怎么实现了

至于浮点数么 如果你这个数是浮点的 显示的时候自动出的就是浮点数罢
2012-10-06 20:24
yangjiawxl
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-10-5
收藏
得分:0 
再次请教
4字节数 3F 8C CC CD 按数字即可解释为int型,也可解释为folat。但是在js中用toString只能显示为整数型1,066,192,077。请教用何种方式能显示为浮点型1.1?
2012-10-08 21:49
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:20 
以下是引用yangjiawxl在2012-10-8 21:49:17的发言:

再次请教
4字节数 3F 8C CC CD 按数字即可解释为int型,也可解释为folat。但是在js中用toString只能显示为整数型1,066,192,077。请教用何种方式能显示为浮点型1.1?

我感觉无法实现 至少无法简单 优雅的实现

4字节数 3F 8C CC CD 按数字即可解释为int型,也可解释为folat。

你说的这个属于一种比较底层的思维 而js是一种脚本语言 脚本语言的特点就是与实现无关 举个例子 脚本语言里面的浮点也可能是C里面的float也就是单精度 也可能是double也就是双精度 或者也可能是自己实现的浮点 对于编程者来说 这是无法控制的 你没法用一种比较【正常】的方法来决定它用什么 自然也无法决定这个内存中的数如何被解释 这是脚本引擎做的 你能做的就是写代码让引擎执行 而无法控制它怎么执行 如果它真是不按你的思路来那也没法

你要说它是缺陷呢 那就是缺陷了 不过js的设计思路就不是你想的这样

至于你说的这个么 或许有一种方法能实现 不过具体怎么弄我就不知道了 我只不过写过一些js代码 至于实现细节不懂 如有不对欢迎各位大牛批评指正
2012-10-08 22:13
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
楼上说的有理.如果要用js去处理这样的问题.就像用飞机去耕地一样(不能说绝对无法实现,但...).

★★★★★为人民服务★★★★★
2012-10-11 07:50
yangjiawxl
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-10-5
收藏
得分:0 
看样子也只能这样了,谢谢诸位
2012-10-11 15:11
linuxpluto
Rank: 4
等 级:贵宾
威 望:13
帖 子:889
专家分:23
注 册:2005-8-14
收藏
得分:0 
程序代码:
var i=0x3F8CCCCD;

var sign = (i << 31) & 1;
var exp = (i << 23) & 0xff;
var mag = i & 0x7fffff;
var d_mag = 1.0 * mag / 0x800000;

var f = (sign==0?1:-1)*(1+d_mag)

alert(f)

吃的比猪还差,干的比驴还累,起的比鸡还早,睡得比小姐还晚,挣得比民工还少,看起来比谁都好——苦命的人.人生短短几十年,不要给自己留下了什么遗憾,想笑就笑,想哭就哭,该爱的时候就去爱,无谓压抑自己
2012-12-25 15:59
快速回复:js语言缺陷,给出一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017338 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved