版块
论坛
喜欢
话题
应用
搜索
登录
注册
rudolf的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=35510
奇怪的C类型转换问题:
目的:将字符串“163.45”转换成16345。代码如下:#include <conio.h>#include <stdlib.h>#include <stdio.h>void main(){char *cha=\"163.45\&q...
全文
回复
(
10
)
2002-11-21 09:18
来自版块 -
ABC初学者
◆
◆
表情
告诉我的粉丝
提 交
xeonjohn
:
num =num1; 改为: num =num1+0.5; 一切OK。 请参考我在xici C++Builder论坛发表的贴子
(2002-11-22 17:21)
回复
rudolf
:
char cha[]=\"163.45\"; 老大,这样是啃腚不行的。 呵呵。 :D :D :D
(2002-11-22 10:45)
回复
cn18799
:
以上是因为浮点数不是“精确”的。
(2002-11-22 08:35)
回复
cn18799
:
num=x1 //舍弃小数部分(总会有某些数有问题,如16344.9 --> 16344) num=x1+0.5 //四舍五入(应该没问题了)
(2002-11-22 08:33)
回复
arthurtu
:
char cha[]=\"163.45\";
(2002-11-21 15:57)
回复
rudolf
:
我只是奇怪,为什么在其他的数据没有问题呢? 如果改变了数据类型就太麻烦了。 我现在是这样处理的: 把x1=x1*100; 改成: x1=x1*10; x1=x1*10; 就好了。 太讨厌了。 :( :( :( :( :(
(2002-11-21 12:14)
回复
OneWind
:
long 为32位 double 为64位 把你的 long类型的num改为double类型再适一下
(2002-11-21 10:03)
回复
Buddha
:
用sscanf(ch, \"%f\", &x1);
(2002-11-21 10:00)
回复
ydyuse
:
我在VC CONSOL APP中得到了16345。
(2002-11-21 09:57)
回复
ydyuse
:
build warning: conversion from \'double\' to \'float\', possible loss of data 我的修改: #include <conio.h> #incl...
(2002-11-21 09:55)
回复
rudolf
加关注
写私信
0
关注
0
粉丝
122
帖子
返回顶部