Golang. Вывод суммы в рублях и копейках

Всем привет, только начал изучать go не ругайте сильно. Решил задачку, но думаю что есть более элегантное решение с выводом, подскажите пожалуйста как бы Вы решили ее.

Текст задачи:

Напишите программу, которая считывает строку и выводит ее предполагаемую цену, 1 символ = 23 копейки в следующем формате:

Y коп. - если цена не дотягивает до рубля.

X р. Y коп. - если цена превышает 1 рубль.

package main

import (
    "fmt"
    "unicode/utf8"
)

func main() {
    var praic float64 = 0.23
    var samplText string
    var result int
    fmt.Scan(&samplText)
    result = utf8.RuneCountInString(samplText)
    var resultRub float64 = float64(result) * praic
    var RUB int = int(resultRub)
    if resultRub > 1.00 {
        fmt.Printf("%d р. %d коп.", int64(RUB), int((resultRub-float64(RUB))*100))
    } else {
        fmt.Printf("%d коп.", int(resultRub*100))
    }
}

Ответы (2 шт):

Автор решения: чистов_n

Я бы сделал так:

package main

import (
    "fmt"
    "unicode/utf8"
)

func main() {
    var samplText string
    var result int  // (1)
    fmt.Scan(&samplText)
    result = utf8.RuneCountInString(samplText) * 23
    if result > 100 {
        fmt.Printf("%d р. %d коп.\n", int(result/100), result%100)
    } else {
        fmt.Printf("%d коп.\n", result)
    }
}
  1. result — кол-во копеек.
→ Ссылка
Автор решения: Norisaline

Думаю такой вариант тоже хорошо выглядит, Убираем лишние объявление переменных, вводим их в блок, и по хорошему тону убираем "else" вместо него пишем return и вне тела цикла выводим сообщение

package main

import (
    "fmt"
    "unicode/utf8"
)

func main() {
    var (
        simvol string
        praice int
    )
    fmt.Scan(&simvol)
    praice = utf8.RuneCountInString(simvol) * 23

    if praice > 100 {
        fmt.Printf("%d р. %d коп. \n", int(praice/100), praice%100)
        return
    }
    fmt.Printf("%d коп. \n", praice)

}

→ Ссылка