需要編寫將一個字符串轉換爲雙無需調用一個函數任何內置的實用程序,如atof()
,Double.parseDouble()
,Double.valueOf()
,[NSString doubleValue]
,[NSScanner scanDouble]
,std::stringstream
或任何類似的方法。字符串到雙無需調用任何內置的實用工具
0
A
回答
3
const char *s = "-123.456";
int sign = 1;
int hasdp = 0;
int dplaces = 0;
float f = 0.0;
while(*s) {
switch (*s) {
case '-': sign = -1; break;
case '.': hasdp = 1; break;
default:
f *= 10;
f += *s - '0';
break;
}
s++;
if (hasdp) dplaces++;
}
f *= sign;
int i;
for (i = 1; i < dplaces; i++) f /= 10;
// we need to start from 1 in order to get
// the correct result, this is a property
// of this algorithm
現在f
將包含解析值,只要它的格式是正確的(可選 - 前綴,可選的小數點後面1個或多個小數位
2
嘗試以下操作:
- (void)myMethod:(NSString *)numberString{
int i = 0;
float number = 0.0;
while ([numberString length] > i) {
NSString *myChar = [numberString substringWithRange:NSMakeRange(i, 1)];
NSLog(@"%@", [numberString substringWithRange:NSMakeRange(i, 1)]);
i++;
if ([myChar isEqualToString:@"1"]){
number = number * 10 + 1;
} else if ([myChar isEqualToString:@"2"]){
number = number * 10 + 2;
} else if ([myChar isEqualToString:@"3"]){
number = number * 10 + 3;
} else if ([myChar isEqualToString:@"4"]){
number = number * 10 + 4;
} else if ([myChar isEqualToString:@"5"]){
number = number * 10 + 5;
} else if ([myChar isEqualToString:@"6"]){
number = number * 10 + 6;
} else if ([myChar isEqualToString:@"7"]){
number = number * 10 + 7;
} else if ([myChar isEqualToString:@"8"]){
number = number * 10 + 8;
} else if ([myChar isEqualToString:@"9"]){
number = number * 10 + 9;
} else if ([myChar isEqualToString:@"0"]){
number = number * 10 + 0;
}
}
}
+1
其提到的不使用任何內置實用程序,如[NSString doubleValue] –
+0
至少使ef要閱讀這個問題的堡壘...... ** – 2012-09-04 10:02:47
+0
這也是一個非常低效且必要的複雜解決方案...... – 2012-09-04 10:40:00
相關問題
- 1. 倒車字符串,而無需使用任何內置的方法
- 2. 通過引用調用一個雙字符串的字符串
- 3. python字符串比較 - 字符串內的任何字符
- 4. Android工具欄字幕到字符串
- 5. 哪個調試工具可以列出字符串內部化?
- 6. 任何模擬工具將返回預設的JSON字符串?
- 7. 導出爲CSV(使用內置工具) - 不正確的字符
- 8. PHP字符串 - 字符串內不工作方法調用在手動
- 9. 字符串到雙轉換
- 10. 鑄造字符串到雙
- 11. 解析字符串到雙
- 12. Javascript - 如何用字符串調用任何函數?
- 13. ng-enter無需調用任何函數
- 14. 圖形工具edge_property到字符串
- 15. 任何用於字符串SQL參數的SQL自動完成工具?
- 16. 如何反向字符串,而不使用任何內置的功能在JavaScript
- 17. 如何替換具有無限字符子串的字符串?
- 18. 用任何符號分割字符串
- 19. 排序的字符串值,而無需使用任何方法/函數
- 20. Java:如何連接雙字符串到字符串
- 21. 如何在工廠內使用angularjs中的字符串調用函數
- 22. 從HTML字符串內部調用Html.RenderAction
- 23. 如何解析字符串到雙
- 24. 將字添加到字符串中的任何位置
- 25. 查找字符串中的一個子不使用任何內置的功能
- 26. jQuery HTML字符串已更改,無需任何修改
- 27. C++ - 用雙引號將字符串替換爲帶雙引號的字符串
- 28. JDK中的任何實用工具將時區格式化爲特定的字符串
- 29. 與無需任何內容
- 30. 系統調用到Java內部的Perl字符串
。家庭作業?標籤,然後 – Geoffroy
字符串的格式是什麼?它是本地化的?分組分隔符?指數? – Sulthan