![]() |
[求助]遇到一个奇怪的问题 急!
我用gui实现一个简单的运算器,主程序代码如下:
A = get(handles.A,'String'); B = get(handles.B,'String'); C = get(handles.C,'String'); total=A-B-C; D = num2str(total); set(handles.D,'String',D); guidata(hObject, handles); 运行后结果非常奇怪,比如0-0-0,结果为-48 比如54-2-1,结果是-46 -47,这是什么问题。恳请那位大侠帮忙解决。 |
回复: [求助]遇到一个奇怪的问题 急!
[QUOTE=zdsq_0615;17097]我用gui实现一个简单的运算器,主程序代码如下:
A = get(handles.A,'String'); B = get(handles.B,'String'); C = get(handles.C,'String'); total=A-B-C; D = num2str(total)...[/QUOTE] 你这个A,B,C都是字符或者字符串,如果直接减的话会按照ASCII字符表转成相应的数字后在减。 ‘0’的ASCII字符表上对应十进制48。A-B-C='0'-'0'-'0'=48-48-48=-48。 所以了,应该写成 A = str2num( get( handles.A, 'String' ) ); B = str2num( get( handles.B, 'String' ) ); C = str2num( get( handles.C, 'String' ) ); total = A - B - C; D = num2str( total ); ... |
所有时间均为北京时间。现在的时间是 14:00。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.