#swift
#swift
Вопрос:
Я хочу разделить разностные данные на 60 и распечатать их как двойные числа. Когда я печатаю его в виде строки, оно не является частью числа. Я получаю эту проблему, когда печатаю число «n». Что мне делать?
Моя ошибка: компилятор не может проверить это выражение в разумные сроки; попробуйте разбить выражение на отдельные подвыражения
if let date = formatter.date(from: receivedTimeString) {
let receivedTimeHoursMinutes = Calendar.current.component(.hour, from: date) * 60
let receivedTimeMinutes = Calendar.current.component(.minute, from: date)
let totalreceivedTimeMinutes = receivedTimeHoursMinutes receivedTimeMinutes
let todayHoursMinutes = Calendar.current.component(.hour, from: Date()) * 60
let todayMinutes = Calendar.current.component(.minute, from: Date())
let todayTimeMinutes = todayHoursMinutes todayMinutes
let difference = todayTimeMinutes - totalreceivedTimeMinutes
let str = String(difference)
switch true {
case difference > 60:
let deger = String(difference / 60)
guard let n = NumberFormatter().number(from: deger) else { return }
print("deger", deger)
self.labelTimerFarkSonuc.text = (n) (" ") ("Saattir") (" ") (durum)
case difference == 0:
self.labelTimerFarkSonuc.text = (n) (" ") ("Dakikadır") (" ") (durum)
case difference < 60:
self.labelTimerFarkSonuc.text = (n) (" ") ("Dakikadır") (" ") (durum)
default:
self.labelTimerFarkSonuc.text = (n) (" ") ("Dakikadır") (" ") (durum)
}
Комментарии:
1. Вам не нужны никакие скобки в
(n) (" ") ("Dakikadır") (" ") (durum)
. Они просто добавляют визуальный шум. Интерполяция строк также выглядит лучше (в этом случае):"(n) Dakikadır (durum)"
Ответ №1:
Если бы я правильно понял ваш вопрос,
Если вы хотите получить результат следующего кода в виде десятичной дроби,
let deger = String(difference / 60) // Dividing by INT will not give fractions.
Измените его на следующее.
let deger = String(difference / 60.0)
Комментарии:
1. Код ошибки: двоичный оператор ‘/’ не может быть применен к операндам типа ‘Int’ и ‘Double’
2. Разница в bcoz равна INT. Пожалуйста, приведите его к double и попробуйте
3. Например, когда я выполняю процесс разделения в форме 5.966666666612321, выдает результат. Как я могу это сделать, я просто хочу написать 5.96? @Anand
4. Пожалуйста, смотрите параметры NumberFormatter, такие как минимальные цифры дроби и т.д. это задокументировано здесь: developer.apple.com/documentation/foundation/numberformatter
5. пусть degerdakika = String(формат: «%.2f», (Двойная (разница) / 60.0)) спасибо